package clientes;

import java.util.HashMap;
import java.util.Map;

import productosYPresentaciones.Producto;
import sucursal.Stock;

/**
 * Esta clase representa a una lista de compras con
 * la lista y cantidades de los productos que el
 * cliente desea comprar.
 * @author Lucas Alan Silvestri
 *
 */
public class ListaDeCompras {
	
	private Stock productosAComprar;
	

	/**
	 * constructor sin parametros de la clase.
	 */
	public ListaDeCompras() {
		this.productosAComprar= new Stock();
		
	}
	
	/**
	 * Añade un producto y sus cantidades respectivas a la
	 * lista de compras.
	 * @param unProducto es el producto a agregar.
	 * @param cantidad es la cantidad de productos del mismo
	 * a agregar.
	 */
	public void agregarProductoALaLista(Producto unProducto,
			int cantidad){
		this.productosAComprar.agregarStock(unProducto, cantidad);
	}

	/**
	 * @return los productos que desea comprar el
	 * cliente.
	 */
	public Map<Producto, Integer> getProductosAComprar() {
		return productosAComprar.getStock();  //este cambio se hizo para mantener la compatibilidad con las clases Ventas y Reportes.
		//no es lo ideal, pero hay que hacerlo andar.
	}
	
	/**
	 * descuenta "x" cantidad de productos de un mismo producto
	 * de la lista de compras.
	 * @param unProducto producto al cual descontaremos cantidades.
	 * @param cantidadADescontar cantidad a descontar del producto.
	 */
	public void descontarCantidadDeUnProductoDeLaLista(Producto unProducto,
			int cantidadADescontar){
		
			this.productosAComprar.quitarStock(unProducto,cantidadADescontar);
	
		
	}

	/**
	 * @param productosAComprar define los productos
	 * que desea comprar el cliente.
	 */
	protected void setProductosAComprar(Stock productosAComprar) {
		this.productosAComprar = productosAComprar;
	}

}
